package com.hhf.domo_05;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Random;

/**
 * @Author: 黄恒锋
 * @DateTime: 2024/5/12 15:34
 * @Description: 100块钱发5个红包，3个人抢到，2个人抢不到
 */
public class Mythread extends Thread{

    // 定义红包
    static BigDecimal money = BigDecimal.valueOf(100.0);
    // 定义红包个数
    static int count = 9;
    // 定义最小红包金额
    static final BigDecimal MIN =  BigDecimal.valueOf(0.01);

    @Override
    public void run() {
        synchronized (Mythread.class){
            // 如果红包个数为0
            if(count == 0){
                System.out.println(getName()+"没有抢到红包!");
            }else {
                BigDecimal price;
                // 最后一个红包
                if(count == 1){
                    price = money;
                }else {
                    // 红包范围
                    double bounds = money.subtract(BigDecimal.valueOf(count-1)).multiply(MIN).doubleValue();
                    Random random = new Random();
                    price = BigDecimal.valueOf(random.nextDouble(bounds) * 10);
                }
                // 红包保留两位小数,四舍五入
                price = price.setScale(2, RoundingMode.HALF_UP);
                // 红包金额减少
                money = money.subtract(price);
                // 红包个数减少
                count--;
                System.out.println(getName()+"抢到了红包"+price+"元");
            }
        }
    }
}
